package cn.ldf.keepaccounts.service;

import cn.ldf.keepaccounts.entity.dto.AvatarFileDTO;
import cn.ldf.keepaccounts.entity.vo.WxUserVO;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.ldf.keepaccounts.entity.pojo.Users;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 用户表(Users)表服务接口
 *
 * @author 清峰
 * @since 2025-02-17 10:16:42
 */
public interface UsersService extends IService<Users> {
    /**
     * 通过openId查询用户所有信息
     *
     * @param openId 用户id
     * @return 结果集
     */
    Users getByOpenId(String openId);
    /**
     * 通过openId查询用户信息(无头像)
     *
     * @param openId 用户id
     * @return 结果集
     */
    Users selectOneByOpenId(String openId);
    /**
     * 通过openId查询用户是否存在
     *
     * @param openId 用户id
     * @return 结果集
     */
    Boolean isExistByOpenId(String openId);

    /**
     * 通过openId查询用户头像
     *
     * @param openIds 用户id
     * @return 结果集
     */
    List<Users> getListAvatarByOpenIds(List<String> openIds);
    /**
     * 通过code获取openId
     *
     * @param code code
     * @return 结果集
     */
    WxUserVO getOpenIdByCode(String code);
    /**
     * 通过openId集合查询用户所有信息
     *
     * @param openIdList 用户id
     * @return 结果集
     */
    List<Users> getListByOpenId(List<String> openIdList);
    /**
     * 插入用户信息
     *
     * @param users 用户信息
     * @return 结果集
     */
    Users insertUsers(Users users);
    /**
     * 上传用户头像和昵称信息
     *
     * @param avatarByte 头像
     * @param contentType 文件类型
     * @param openId     用户id
     * @param nickname   昵称
     * @return 结果集
     */
    Boolean uploadBaseAvatar(byte[] avatarByte,String contentType, String openId, String nickname);
}

